package com.bootdo.coach.service;

public interface RedisService {
    /**
     * 将 key，value 存放到redis数据库中，默认设置过期时间为一天
     *
     * @param key
     * @param value
     */
    void set( String key, Object value );

    /**
     * 将 key，value 存放到redis数据库中，设置过期时间单位是分钟
     *
     * @param key
     * @param value
     * @param expireTime 单位是秒
     */
    void set( String key, Object value, long expireTime );

    /**
     * 判断 key 是否在 redis 数据库中
     *
     * @param key
     * @return
     */
    boolean exists( final String key );


    /**
     * 获取 key 对应的字符串
     *
     * @param key
     * @return
     */
    Object get( String key );

    /**
     * 获得 key 对应的键值，并更新缓存时间，时间长度为默认值
     *
     * @param key
     * @return
     */
    Object getAndUpdateTime( String key );

    /**
     * 删除 key 对应的 value
     *
     * @param key
     */
    void delete( String key );
    
    /**
     * 获取分布式锁
     * @param key
     * @param value
     * @param expireSecond 过期时间(秒)
     * @return
     */
    boolean setNx(String key,String value, long expireSecond);

    boolean lpush(String key, String value);
    
    void lpush(String key, String[] values);

	String lpop(String key);
}
